package com.bandit.service;

import com.bandit.pojo.Blog;
import com.bandit.pojo.BlogDate;
import com.bandit.pojo.Page;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

public interface BlogService {

    /**
     * 获取所有博客
     * @return
     */
    List<Blog> getAllBlog();

    /**
     * 获取六个最新博客
     * @return
     */
    List<Blog> getSix();

    /**
     * 获取首页的博客
     * @return
     */
    List<Blog> getShowBlog();

    /**
     * 关键字查询博文
     * @param str
     * @return
     */
    List<Integer> searchBlog(String str);

    /**
     * 根据id查询博客详情信息
     * @param id
     * @return
     */
    Blog getBlogById(int id);

    /**
     * 分页查询,map传递页面start,size等
     * @param currentPage
     * @return
     */
    Page<Blog> getBlogByPage(int currentPage);

    int selectCount();

    /**
     * 通过typeId获取
     * @param blogTypeId
     * @return
     */
    List<Blog> getBlogByTypeId(int blogTypeId);

    /**
     * 查找最后一条博客的id
     * @return
     */
    int getLastBlogId();

    /**
     * 传递一个Blog添加博客
     * @param blog
     */
    void insertBlog(Blog blog);

    /**
     * 通过Id删除博客
     * @param id
     */
    void deleteBlogById(int id);

    /**
     * 修改博客
     * @param blog
     */
    void updateBlog(Blog blog);

    /**
     * 获取年月集合
     * @return
     */
    List<BlogDate> getYearAndMonth();

    /**
     * 按日期来查询
     * @return
     */
    List<Blog> getBlogByDate(BlogDate blogDate);

    /**
     * 获取点击量
     * @param id
     * @return
     */
    int getClickHit(@Param("id")int id);

    /**
     * 更新点击量
     * @param id
     */
    void updateClickHit(@Param("id")int id);

}
